Golang
玩一下html template
如果golang要使用作為網站的話,不太可能都只靠print來處理事情,所以其實如果需要HTML檔案的話,是也可以使用Temaple這個套件來輔助完成。(所以我們需要在import 引用"html/template"這個套件。
下面是一個很簡單的範例,當然不可能僅是這樣而已!
我們需要在自己的程式執行區域,建立一個資料夾,我自己是建立一個view的資料夾,然後建立一個檔案index.html,裡面大概大概寫個html code
如
index.html
<div>hello gogo</div>
然後go的檔案如下,之後一樣要執行檔案唷!
package main
import (
"html/template"
"net/http"
)
func tmpl(w http.ResponseWriter, r *http.Request) {
t1, err := template.ParseFiles("view/index.html")
if err != nil {
panic(err)
}
t1.Execute(w, "hello world")
}
func main() {
http.HandleFunc("/", tmpl)
http.ListenAndServe(":8000", nil)
}
這樣執行起來,就會發現輸入localhost:8000就有看到我們的index.html了。
那如果要傳變數的話呢 該如何處理?
此時我們需要在html中變化成這樣,目前看起來是把title 作為一個變數並且等待接值
<div>hello, gogo</div>
<h1>{{ .Title }}</h1>
Golang的程式碼
package main
import (
"html/template"
"net/http"
)
func tmpl(w http.ResponseWriter, r *http.Request) {
t1, err := template.ParseFiles("view/index.html")
if err != nil {
panic(err)
}
t1.Execute(w, struct {
Title string
}{
"My Title is gogo",
})
}
func main() {
http.HandleFunc("/", tmpl)
http.ListenAndServe(":8000", nil)
}
執行看看囉!!!
這樣初步就可以run起來一個簡單的golang搭配html template的方式,但其實這樣的模式真的只會在練習或者自用的情境下才可能真的如此應用,所以還是得找一下golang的MVC框架來玩看看囉!!!